The invention relates to a multi-port bridge for a local area network. More particularly, the invention relates to a technique for optimizing a data pipeline in a multi-port bridge for a local area network according to timing considerations.
Nodes of a local area network (LAN) are typically interconnected by a shared transmission medium. The amount of data traffic that the shared transmission medium can accommodate, however, is limited. For example, only one node at a time can successfully transmit data to another node over the shared transmission medium. If two or more nodes simultaneously attempt to transmit data, a data collision occurs, which tends to corrupt the data being transmitted. Thus, nodes that share a transmission medium are considered to be in a same collision domain.
A multi-port bridge allows simultaneous communication between nodes of the LAN by segmenting the LAN into multiple collision domains (also referred to as network segments or LAN segments), each segment having a corresponding transmission medium.
FIG. 1 illustrates a conventional local area network including a multi-port bridge 10. The multi-port bridge 10 has eight ports A-H , though the number of ports can vary. Each port A-H is connected to a segment 11-18 of the LAN. Each segment 11-18 typically includes one or more nodes 19-34, such as a workstation, a personal computer, a data terminal, a file server, a printer, a facsimile, a scanner or other conventional digital device. Each of the nodes 19-34 has an associated node address (also referred to as a medium access control (MAC) address) which uniquely identifies the node. The nodes 19-34 are configured to send data, one to another, in the form of discrete data packets.
When the LAN operates according to Ethernet standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.3 standard, data is communicated in the form of discrete packets. FIG. 2 illustrates a conventional IEEE 802.3 data packet 40. The data packet 40 includes an eight byte long pre-amble 41 which is generally utilized for synchronizing a receiver to the data packet 40. The pre-amble 41 includes seven bytes of pre-amble and one byte of start-of-frame. Following the pre-amble 41, the data packet 40 includes a six-byte-long destination address 42, which is the node address of a node which is an intended recipient for the data packet 40. Next, the data packet 40 includes a six-byte-long source address 43, which is the node address of a node which originated the data packet 40. Following the source address 43 is a two-byte length field 44. Following the length field 44 is a data field 45. The data field 45 can be up to 1500 bytes long. Finally, the data packet 40 includes a two-byte frame check field 46 which allows a recipient of the data packet 40 to determine whether an error has occurred during transmission of the data packet 40.
When a node (source node) sends data to another node (destination node) located on its same segment of the LAN (intra-segment communication), the data is communicated directly between the nodes without intervention by the multi-port bridge 10 and is known as an intra-segment packet. Therefore, when the multi-port bridge 10 receives an intra-segment packet, the multi-port bridge 10 does not bridge the packet (the packet is filtered). When a node (source node) sends a data packet to another node (destination node) located on a different segment (inter-segment communication), the multi-port bridge 10 appropriately forwards the data packet to the destination node.
Problems can arise, however, when the capabilities of the multi-port bridge 10 are exceeded by network demand. When data packets 40 are received by the multi-port bridge 10 at a rate that is higher than the rate at which the multi-port bridge 10 can appropriately forward each packet 40, the multi-port bridge 10 becomes a source of network congestion. This problem is exacerbated as network users place increasing demands on the network.
Therefore, what is needed is improved technique for increasing the data packet handling capacity in a multi-port bridge for a local area network.
The invention is a technique for optimizing a data pipeline in a multi-port bridge for a local area network (LAN) according to timing considerations. The multi-port bridge includes a plurality of ports for communicating data packets with a corresponding segment of the LAN. Each port is coupled to a data bus included in the multi-port bridge. Packet buffers are also coupled to the data bus for temporarily storing data packets undergoing transfer among the ports. The multi-port bridge includes a receive data path by which the multi-port bridge receives data packets from segments of the LAN and, then, stores them in the packet buffers. In addition, the multi-port bridge includes a transmit data path by which the multi-port bridge retrieves the data packets from the packet buffers and, then, transmits them to appropriate segments of the LAN.
More particularly, the receive data path for a data packet includes receiving the packet from a corresponding segment of the LAN into a receive buffer of a source port for the packet. Then, access to the data bus for transferring the packet is obtained. Next, the data packet is transferred across the data bus. Then, the packet buffers are accessed. Finally, the data packet is loaded into the packet buffers. The transmit data path for a data packet includes obtaining access to the packet buffers for retrieving the data packet. Then, access to the data bus is obtained. Next, the packet is retrieved from the packet buffers and transferred across the data bus. Then, the data packet is loaded into a transmit buffer of a destination port for the packet. Finally, the data packet is transmitted to a segment of the LAN associated with the destination port.
Accordingly, each of the receive data path and the transmit data path each includes a number of stages arranged in a serial path. Each stage performs a corresponding operation on a data packet as it progresses through the multi-port bridge. Each packet received is processed in accordance with the receive data path, one packet after another. Similarly, each packet to be transmitted is processed according to the transmit data path, one packet after another. Progression through each stage is in accordance with a bus clock signal. Accordingly, an equal amount of time is generally taken to progress a data packet through each stage of the receive and transmit data paths.
The required packet handling capacity of the multi-port bridge is related to a sum of the throughput capacities of all the ports, whereas, the actual packet handling capacity of the multi-port bridge is related to the frequency of the bus clock signal. The bus clock signal, however, can only be increased to a level commensurate with the slowest stage in each of the receive and transmit data paths. The slowest stage in each path is identified and subdivided into two or more subdivided stages wherein the subdivided stages together perform the operation of the original stage. Because each subdivided stage performs fewer operations than the original stage, each subdivided stage performs its associated operation in less time. Accordingly, the bus clock can be operated at a higher frequency. An expected trade-off, however, is increased latency. Thus, although the bus clock can be operated at a higher frequency, the total number of stages has increased. Accordingly, the total amount of time required for a data packet to traverse all the stages is increased. This trade-off is desirable because Labs tend to be latency-tolerant to a certain extent.
This technique can be repeated for selected stages in the receive and transmit data paths until the actual packet handling capacity of the multi-port bridge meets or exceeds the required packet handling capacity.
In accordance with an aspect of the present invention, A method of optimizing a data path in a multi-port bridge for a local area network (LAN), wherein the method comprises steps of: identifying a data path through the multi-port bridge wherein the data path includes a plurality of stages arranged in serial, wherein each stage performs a corresponding operation on data received from the LAN by the multi-port bridge prior to transmission of the data to the LAN by the multi-port bridge; identifying a stage in the data path wherein the identified stage requires a period of time to perform its corresponding operation; and subdividing the identified stage into two or more subdivided stages wherein each of the subdivided stages performs a corresponding operation and wherein the operations performed by the subdivided stages collectively perform the operation associated with the identified stage and wherein each of the two or more subdivided stages requires a corresponding period of time to perform its corresponding operation which is shorter than the period of time required for the identified stage to perform its corresponding operation.
In accordance with another aspect of the present invention, a method of optimizing a data path in a multi-port bridge for a local area network (LAN), wherein the method comprises steps of: identifying a data path through the multi-port bridge wherein the data path includes a plurality of stages arranged in serial, wherein each stage performs a corresponding operation on data received from the LAN by the multi-port bridge prior to transmission of the data to the LAN by the multi-port bridge; identifying a stage in the data path wherein the identified stage requires a period of time to perform its corresponding operation which is longer than any other stage in the data path; and subdividing the identified stage into two or more subdivided stages wherein each of the subdivided stages performs a corresponding operation and wherein the operations performed by the subdivided stages collectively perform the operation associated with the identified stage and wherein each of the two or more subdivided stages requires a corresponding period of time to perform its corresponding operation which is shorter than the period of time required for the identified stage to perform its corresponding operation.